/*
 * ABMVentas.cpp
 *
 */

#include "ABMVentas.h"

ABMVentas::ABMVentas(std::string nArchivo, unsigned int tamanioBucket) {
	this->nArchivo = nArchivo;
	this->tamanioBucket = tamanioBucket;
	arbolVentas = new Indice(nArchivo, tamanioBucket);

}

ABMVentas::~ABMVentas() {

}

bool ABMVentas::alta(unsigned int id, string cliente, int idCorpino, int precio, string fecha) {
	string valor = cliente + ";" + fecha + ";" + Util::intToString(precio) + ";" + Util::intToString(idCorpino);
	ElementoHoja elemento(id, valor);
	return ((arbolVentas->alta(elemento)) != -1);
}

bool ABMVentas::baja(unsigned int id) {
	return ((arbolVentas->baja(id)) != -1);
}

bool ABMVentas::modificacion(unsigned int id, string cliente, int idCorpino, int precio, string fecha) {
	string valor = cliente + ";" + fecha + ";" + Util::intToString(precio) + ";" + Util::intToString(idCorpino);
	ElementoHoja elemento(id, valor);
	return ((arbolVentas->modificar(elemento)) != -1);
}

/*si lo encuentra devuelve el valor de Key con los atributos separados por ; */

string ABMVentas::buscar(unsigned int id) {
	ResultadoBuscar res = arbolVentas->buscar(id);
	ElementoHoja elemH= arbolVentas->buscarElemento(id);
	if (elemH.clave !=- 1) {
		return Util::intToString(id) + ";" + elemH.valor;
	} else {
		return "";
	}
}

vector<string> ABMVentas::listar() {
	vector<ElementoHoja> elementos = arbolVentas->recorreOrdenado();
	vector<string> resultado;
	for (int i = 0; i < elementos.size() ; i++) {
			string valorVector = Util::uIntToString(elementos.at(i).clave) + ";"
					+ (elementos.at(i).valor);
			resultado.push_back(valorVector);
	}
	return resultado;
}

